home *** CD-ROM | disk | FTP | other *** search
/ Gigarom 1 / Gigarom Macintosh Archives (Quantum Leap)(CDRM1080320)(1993).iso / FILES / EXT / F-J / Flip.cpt / Flip / HInit.asm < prev    next >
Assembly Source File  |  1989-06-15  |  2KB  |  109 lines

  1. Include     Traps.D        ; Use System and ToolBox traps
  2.  
  3. .TRAP    _DebugStr    $ABFF
  4.  
  5. .Align 2
  6.  
  7. k        EQU    20
  8. Coln        EQU    62
  9. Space        EQU    63
  10. Ex        EQU    64
  11. Period        EQU    65
  12. Decimal        EQU    66
  13. Blank        EQU    67
  14. Unknown        EQU    68
  15. Array        EQU    15
  16.  
  17. Resource 'INIT' 12
  18.  
  19. Start
  20.     MOVEM.L        A0-A4/D0-D7,-(SP)
  21.     _GetZone
  22.     LEA        Storage,A1
  23.     MOVE.L        A0,(A1)
  24.     MOVEA.L        $2A6,A0
  25.     _SetZone
  26.     
  27.     MOVE.L        #$0F000,D0            ;SPACE FOR HLock Code
  28.     _NewPtr
  29.     MOVEA.L        $CC8,A1
  30.     MOVEA.L        (A1),A1
  31.     MOVEA.L        $16(A1),A1
  32.     MOVEA.L        (A1),A1
  33.     LEA        OldScreen,A2        ;save old screen
  34.     MOVE.L        (A1),(A2)
  35.     MOVE.L        A0,(A1)            ;set our screen to be the new screen
  36.  
  37.     MOVEA.L        A0,A1
  38.     MOVE        #$EFFF,D0        ;fill in new screen
  39. @2    MOVE.B        #-1,(A1)+
  40.     DBRA        D0, @2
  41.  
  42.     ADD.L        #$0EF80,A0        ;Bottom of screen, so it reverses
  43.     LEA        NewScreen,A1
  44.     MOVE.L        A0,(A1)
  45.  
  46.     MOVE.L        #200,D0            ;SPACE FOR HUnLock Code
  47.     _NewPtr
  48.     LEA        MemShowCursor,A1
  49.     MOVE.L        A0,(A1)
  50.  
  51.     MOVEA.L        Storage,A0
  52.     _SetZone
  53.  
  54. PlaceCode
  55.     LEA        vblAddr,A0
  56.     MOVE.L        MemShowCursor,(A0)
  57.  
  58.     LEA        ScreenFlip,A1
  59.     MOVEA.L        MemShowCursor,A0
  60.     MOVE        #199,D0            ;MOVE NEW CODE IN
  61. @1    MOVE.B        (A1)+,(A0)+
  62.     DBRA        D0, @1
  63.  
  64.     MOVE.L        MemShowCursor,A0
  65.     ADDA.W        offset,A0
  66.     _VInstall
  67.  
  68.     MOVEM.L        (SP)+,A0-A4/D0-D7
  69.     RTS
  70.  
  71. Storage
  72.     DC.L    0
  73. MemShowCursor
  74.     DC.L    0
  75.  
  76.  
  77. ;***************************  The RAM Patch Codes  ***************************
  78.  
  79. ;***************************  The HLock Patch  ***************************
  80.  
  81. .Align 4
  82.  
  83. ScreenFlip
  84.     MOVE.L        OldScreen,A2
  85.     MOVE.L        NewScreen,A3
  86.     MOVE        #479,D1
  87. @2    MOVEA.L        A2,A0
  88.     MOVEA.L        A3,A1
  89.     MOVE        #19,D0
  90. @1    MOVE.L        (A1)+,(A0)+
  91.     DBRA        D0, @1
  92.     ADDA        #$80,A2
  93.     SUBA        #$80,A3
  94.     DBRA        D1,@2
  95.     LEA        vblCount,A0
  96.     MOVE        #1,(A0)
  97.     RTS
  98.  
  99.  
  100. NewScreen    DC.L    0
  101. OldScreen    DC.L    0
  102.  
  103. vblBlock    DC.L    0
  104. qType        DC.W    1
  105. vblAddr        DC.L    0
  106. vblCount    DC.W    1
  107. vblPhase    DC.W    0
  108.  
  109. offset        DC.W    vblBlock-ScreenFlip